\hypertarget{classCDatagramBuilder}{
\section{\-C\-Datagram\-Builder \-Class \-Reference}
\label{classCDatagramBuilder}\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}}
}


datagram builder for communication  




{\ttfamily \#include $<$datagram\-\_\-builder.\-h$>$}

\-Inheritance diagram for \-C\-Datagram\-Builder\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classCDatagramBuilder}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCDatagramBuilder_a457b11236a5417cf1075a39f0ccdea87}{\-C\-Datagram\-Builder} (\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$p\-Config, \hyperlink{classIStegIO}{\-I\-Steg\-I\-O} $\ast$p\-Steg\-I\-O)
\item 
virtual \hyperlink{classCDatagramBuilder_a01b356a8d8016fe6104f5944d1f3d0c9}{$\sim$\-C\-Datagram\-Builder} ()
\item 
virtual \hyperlink{namespaceNPacketSource_a41d32c941906c55fd056bc4be5e0c79b}{\-N\-Packet\-Source\-::\-E\-Payload\-Info} \hyperlink{classCDatagramBuilder_a181dc65bc7cda68d55ac289dfff4e241}{get\-Packet} (void $\ast$\&p\-Packet, unsigned int \&p\-Packet\-Length, unsigned int p\-Max\-Length)
\item 
virtual void \hyperlink{classCDatagramBuilder_a1819520ff57281331f9b202e2aa5772d}{put\-Packet} (void $\ast$p\-Packet, unsigned int p\-Packet\-Length)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCDatagramBuilder_ae78649b2c5dcface92bd430a449e52d8}{\-C\-Datagram\-Builder} (const \hyperlink{classCDatagramBuilder}{\-C\-Datagram\-Builder} \&)
\item 
\hyperlink{classCDatagramBuilder}{\-C\-Datagram\-Builder} \& \hyperlink{classCDatagramBuilder_a906078596889489191b45dbb5ecc2b8e}{operator=} (const \hyperlink{classCDatagramBuilder}{\-C\-Datagram\-Builder} \&)
\item 
unsigned char $\ast$ \hyperlink{classCDatagramBuilder_a6250fff7d087ddca0dc227a6d29c0942}{get\-Byte\-Buffer} (unsigned int p\-Size)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$ \hyperlink{classCDatagramBuilder_a7b5cc7ebb8ac6054b10630b6c6eb70d4}{m\-Config}
\item 
\hyperlink{classIStegIO}{\-I\-Steg\-I\-O} $\ast$ \hyperlink{classCDatagramBuilder_ae88b531e1dd2f2ef96fc72935ce26ab4}{m\-Steg\-I\-O}
\item 
unsigned char $\ast$ \hyperlink{classCDatagramBuilder_a19a299261022615ab596c5d98f8ecb0c}{m\-Byte\-Buffer}
\item 
unsigned int \hyperlink{classCDatagramBuilder_a4f8ae20947a3fefa350680ee414efcd3}{m\-Byte\-Buffer\-Size}
\end{DoxyCompactItemize}
\subsection*{\-Static \-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const std\-::string \hyperlink{classCDatagramBuilder_a7e4e5879ffd902e977e59213fa116bb3}{s\-Ini\-Section\-Name}
\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
datagram builder for communication 

\begin{DoxyAuthor}{\-Author}
mnutzinger, jwurzer 
\end{DoxyAuthor}


\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCDatagramBuilder_a457b11236a5417cf1075a39f0ccdea87}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}}
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{\-C\-Datagram\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Datagram\-Builder\-::\-C\-Datagram\-Builder (
\begin{DoxyParamCaption}
\item[{{\bf \-C\-Properties\-Reader} $\ast$}]{p\-Config, }
\item[{{\bf \-I\-Steg\-I\-O} $\ast$}]{p\-Steg\-I\-O}
\end{DoxyParamCaption}
)}}
\label{classCDatagramBuilder_a457b11236a5417cf1075a39f0ccdea87}
\hypertarget{classCDatagramBuilder_a01b356a8d8016fe6104f5944d1f3d0c9}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!$\sim$\-C\-Datagram\-Builder@{$\sim$\-C\-Datagram\-Builder}}
\index{$\sim$\-C\-Datagram\-Builder@{$\sim$\-C\-Datagram\-Builder}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{$\sim$\-C\-Datagram\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Datagram\-Builder\-::$\sim$\-C\-Datagram\-Builder (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCDatagramBuilder_a01b356a8d8016fe6104f5944d1f3d0c9}
\hypertarget{classCDatagramBuilder_ae78649b2c5dcface92bd430a449e52d8}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}}
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{\-C\-Datagram\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Datagram\-Builder\-::\-C\-Datagram\-Builder (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Datagram\-Builder} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCDatagramBuilder_ae78649b2c5dcface92bd430a449e52d8}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCDatagramBuilder_a6250fff7d087ddca0dc227a6d29c0942}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!get\-Byte\-Buffer@{get\-Byte\-Buffer}}
\index{get\-Byte\-Buffer@{get\-Byte\-Buffer}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{get\-Byte\-Buffer}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char $\ast$ \-C\-Datagram\-Builder\-::get\-Byte\-Buffer (
\begin{DoxyParamCaption}
\item[{unsigned int}]{p\-Size}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCDatagramBuilder_a6250fff7d087ddca0dc227a6d29c0942}
\hypertarget{classCDatagramBuilder_a181dc65bc7cda68d55ac289dfff4e241}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!get\-Packet@{get\-Packet}}
\index{get\-Packet@{get\-Packet}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{get\-Packet}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Packet\-Source\-::\-E\-Payload\-Info} \-C\-Datagram\-Builder\-::get\-Packet (
\begin{DoxyParamCaption}
\item[{void $\ast$\&}]{p\-Packet, }
\item[{unsigned int \&}]{p\-Packet\-Length, }
\item[{unsigned int}]{p\-Max\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCDatagramBuilder_a181dc65bc7cda68d55ac289dfff4e241}
get a packet from the packet source (from upper to lower layer) \begin{DoxyNote}{\-Note}
p\-Packet and p\-Packet\-Length only make sense if return value is true 

minimum payload length is always 1 (if return value of true)
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Packet} & pointer to the bytes representing the packet \\
\hline
{\em p\-Packet\-Length} & number of bytes \\
\hline
{\em p\-Max\-Length} & maximum number of bytes for the returned packet \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
true on data available, false otherwise 
\end{DoxyReturn}


\-Implements \hyperlink{classIPacketSource_a646c3a5cc1c03628145471697b1abf54}{\-I\-Packet\-Source}.

\hypertarget{classCDatagramBuilder_a906078596889489191b45dbb5ecc2b8e}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!operator=@{operator=}}
\index{operator=@{operator=}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Datagram\-Builder}\& \-C\-Datagram\-Builder\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Datagram\-Builder} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCDatagramBuilder_a906078596889489191b45dbb5ecc2b8e}
\hypertarget{classCDatagramBuilder_a1819520ff57281331f9b202e2aa5772d}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!put\-Packet@{put\-Packet}}
\index{put\-Packet@{put\-Packet}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{put\-Packet}]{\setlength{\rightskip}{0pt plus 5cm}void \-C\-Datagram\-Builder\-::put\-Packet (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{p\-Packet, }
\item[{unsigned int}]{p\-Packet\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCDatagramBuilder_a1819520ff57281331f9b202e2aa5772d}
put a packet to the packet source (from lower to upper layer)


\begin{DoxyParams}{\-Parameters}
{\em p\-Packet} & pointer to the bytes representing the packet \\
\hline
{\em p\-Packet\-Length} & number of bytes \\
\hline
\end{DoxyParams}


\-Implements \hyperlink{classIPacketSource_ad2c03d2e3370eef80a207617bd561f26}{\-I\-Packet\-Source}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCDatagramBuilder_a19a299261022615ab596c5d98f8ecb0c}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!m\-Byte\-Buffer@{m\-Byte\-Buffer}}
\index{m\-Byte\-Buffer@{m\-Byte\-Buffer}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{m\-Byte\-Buffer}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char$\ast$ {\bf \-C\-Datagram\-Builder\-::m\-Byte\-Buffer}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCDatagramBuilder_a19a299261022615ab596c5d98f8ecb0c}
\hypertarget{classCDatagramBuilder_a4f8ae20947a3fefa350680ee414efcd3}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!m\-Byte\-Buffer\-Size@{m\-Byte\-Buffer\-Size}}
\index{m\-Byte\-Buffer\-Size@{m\-Byte\-Buffer\-Size}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{m\-Byte\-Buffer\-Size}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf \-C\-Datagram\-Builder\-::m\-Byte\-Buffer\-Size}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCDatagramBuilder_a4f8ae20947a3fefa350680ee414efcd3}
\hypertarget{classCDatagramBuilder_a7b5cc7ebb8ac6054b10630b6c6eb70d4}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!m\-Config@{m\-Config}}
\index{m\-Config@{m\-Config}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{m\-Config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Properties\-Reader}$\ast$ {\bf \-C\-Datagram\-Builder\-::m\-Config}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCDatagramBuilder_a7b5cc7ebb8ac6054b10630b6c6eb70d4}
\hypertarget{classCDatagramBuilder_ae88b531e1dd2f2ef96fc72935ce26ab4}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!m\-Steg\-I\-O@{m\-Steg\-I\-O}}
\index{m\-Steg\-I\-O@{m\-Steg\-I\-O}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{m\-Steg\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-I\-Steg\-I\-O}$\ast$ {\bf \-C\-Datagram\-Builder\-::m\-Steg\-I\-O}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCDatagramBuilder_ae88b531e1dd2f2ef96fc72935ce26ab4}
\hypertarget{classCDatagramBuilder_a7e4e5879ffd902e977e59213fa116bb3}{
\index{\-C\-Datagram\-Builder@{\-C\-Datagram\-Builder}!s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}}
\index{s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}!CDatagramBuilder@{\-C\-Datagram\-Builder}}
\subsubsection[{s\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::string {\bf \-C\-Datagram\-Builder\-::s\-Ini\-Section\-Name}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCDatagramBuilder_a7e4e5879ffd902e977e59213fa116bb3}


\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{datagram__builder_8h}{datagram\-\_\-builder.\-h}\item 
\hyperlink{datagram__builder_8cxx}{datagram\-\_\-builder.\-cxx}\end{DoxyCompactItemize}
